Computer-aided design (CAD) software allows a user to construct and manipulate complex three-dimensional (3D) models of assembly designs. A number of different modeling techniques can be used to create a model of an assembly. These techniques include solid modeling, wire-frame modeling, and surface modeling. Solid modeling techniques provide for topological 3D models, where the 3D model is a collection of interconnected edges and faces, for example. Geometrically, a 3D solid model is a collection of trimmed surfaces. The trimmed surfaces correspond to the topological faces bounded by the edges. Wire-frame modeling techniques, on the other hand, can be used to represent a model as a collection of simple 3D lines, whereas surface modeling can be used to represent a model as a collection of exterior surfaces. CAD systems may combine these, and other, modeling techniques, such as parametric modeling techniques.
Parametric modeling techniques can be used to define various parameters for different components of a model, and to define relationships between those components based on relationships between the various parameters. Solid modeling and parametric modeling can be combined in CAD systems supporting parametric solid modeling.
A design engineer is a typical user of a 3D CAD system. The design engineer designs physical and aesthetic aspects of 3D models, and is skilled in 3D modeling techniques. The design engineer creates parts and may assemble the parts into a subassembly. A subassembly may also consist of other subassemblies. An assembly is designed using parts and subassemblies. Parts and subassemblies are hereinafter collectively referred to as components.
Often assemblies and subassemblies have one or more planes of symmetry about which parts and subassemblies appear. Components that appear in symmetric locations on both sides of a plane of symmetry are referred to herein as mirrored components. One way in which a component may be mirrored is by creating a reflection of the original component such that a left-hand and right-hand version of a component exists.
Henceforth, this type of mirrored component will be referred to as a “truly mirrored” component (or part). A second way in which a component may be mirrored is to create a new component by replicating the original component and positioning the new component at a symmetric location within the assembly. Thus, only one version of the component exists. Henceforth, this type of mirrored component will be referred to as a replicated component or simply a copy. In the case where a subassembly is mirrored about a plane of symmetry, combinations of truly mirrored components and replicated components may be present.
To create a truly mirrored component such that a left-hand and right-hand adaptation of a component exists, all entities (e.g., a solid model's lines, edges, and faces) in the original component are reflected about a specified plane. Therefore, the original component is not simply copied. Rather, the original component is transformed, for example, using a scaling transformation that may be represented as the 3×3 matrix [1,0,0 0,−1,0 0,0,1].
The SolidWorks®2000 CAD system available from SolidWorks Corporation of Concord, Mass., can create a truly mirrored part about a specified face or plane. However, SolidWorks 2000 is not capable of creating a truly mirrored part in the context of an assembly. The original part document must first be opened in a window and the original part must be the sole component in that window. The design engineer then must select a face, or alternatively create a plane and select that plane, to specify the face or plane about which to mirror the part. The design engineer then activates a command that instructs the system to construct the mirrored part. After the mirrored part is constructed, the mirrored part must be saved to a file. The design engineer then returns to the window containing the assembly and inserts the original part's file, if necessary, and inserts the mirrored part's file. The truly mirrored part must also be positioned in the assembly using commands (which may be accessed via the user interface) that translate and rotate the truly mirrored part.
To create a replicated component, the design engineer creates a copy of the component. Some CAD systems may require that each part in a subassembly be copied one at a time. However, SolidWorks 2000 can create a copy of an entire subassembly using a single copy command. Generally, CAD systems provide commands that copy components. However, after a component is copied, the design engineer must determine the correct position in the assembly where the replicated component should be placed such that the original component and the replicated component appear in symmetric locations on opposite sides of a plane of symmetry. The design engineer then must determine and apply the appropriate transformations (e.g., rotations and/or translations) to correctly place the component.
Components may have relationships with other components, such as parametric, positional, and hierarchical relationships. Generally, a design engineer would want these relationships preserved by replicated and truly mirrored components.
A parametric relationship is a geometric relationship that establishes a dependency between two or more features that belong to different components. When the value of an attribute of one feature is modified, the value of an attribute of another feature may be automatically modified in response. For example, the diameter of a hole may be dependent on the diameter of a screw inserted into the hole, and vice versa. Although some CAD systems may require a design engineer to re-create parametric relationships with respect to replicated and truly mirrored components, SolidWorks 2000 does not require parametric relationships to be re-created for mirrored components. The part model for a new truly mirrored part references the part model for the original part in such a way as to preserve the parametric relationships in the new truly mirrored part that exist in the original part. A replicated component created using SolidWorks 2000 also retains the parametric relationships because the attributes that define the parametric relationships are included in the replicated component.
Although parametric relationships may be retained when a mirrored component is created, typically hierarchical relationships are not retained. When a subassembly is mirrored about a plane of symmetry, the hierarchical structure of the subassembly is not preserved. Rather, the mirrored subassembly is created as an assortment of mirrored parts, which are in a fixed position in space in the parent subassembly or assembly. The design engineer must assemble the mirrored components to form a hierarchical structure, such as a subassembly, and integrate the components within the overall assembly structure. To preserve the design intent, the design engineer must recreate the structure of each original subassembly by reconstructing the hierarchical relationships established in the original components.
Other relationships that are not typically preserved by mirrored components are mating relationships, which are positional relationships. A mating relationship is a geometric relationship that positions one component with respect to another component and defines how those components move with respect to other components. For example, a mating relationship may ensure that two parts remain coincident, tangent, or perpendicular to one another. When components are mated, the components are always precisely positioned with respect to one another within an assembly. The design engineer must re-establish mating relationships for the mirrored components using commands provided by the CAD system.
Although hierarchical and mating relationships must be re-created, generating replicated and truly mirrored components frees the design engineer from completely redesigning the components. Additionally, a replicated part created using SolidWorks 2000 has the advantage of conserving memory because SolidWorks 2000 does not store an additional part model for a replicated part. However, SolidWorks 2000 does create and store an additional part model when a truly mirrored component is generated.
Another advantage that replicated parts have over truly mirrored parts in the SolidWorks 2000 CAD system is that features in a replicated part are discernable. Given that a replicated part uses the same part model, features that are added, deleted, or modified on the replicated part are also added, deleted, or modified on the original part. Conversely, any changes to the original part are applied to the replicated part.
When SolidWorks 2000 creates a truly mirrored part, a new part model is created and individual features present in the original part are combined into one feature in the truly mirrored part. Therefore, features may be added to a truly mirrored part, but cannot be modified or deleted. However, SolidWorks 2000 establishes parametric relationships to ensure that a feature modification in the original component is reproduced in the truly mirrored component.
Commercially available CAD systems may create a bill of materials that lists all the parts in an assembly and specifies the quantity of each part used in the assembly. For manufacturing considerations, the design engineer generally wants the number of unique parts in an assembly to be kept to a minimum. This simplifies the manufacturing tasks and reduces manufacturing costs. Therefore, two quantities of one particular part in an assembly are preferable over having one left-hand version and one right-hand version of a part.
A common problem encountered by design engineers that generate mirrored components is producing a correct bill of materials for the assembly. A correct bill of materials should include separate part numbers for the original component and the truly mirrored component to indicate that two unique components are required. Some CAD systems may not make the distinction that truly mirrored parts are unique and may produce an incorrect bill of materials. To overcome this problem, design engineers may choose to spend the time and effort to redesign components rather than generate truly mirrored components to ensure that the bill of materials will list two separate and unique parts, one for the original part and one for the truly mirrored part.
The bill of materials may also misrepresent the original part and a corresponding replicated part as two unique parts, although when a part is replicated only one version of the part exists. For example, a replicated mirrored component may be created from a part that is a standard screw. The system may not account for two quantities of one standard screw, but rather account for one standard screw and one mirrored standard screw.
Another situation that causes an incorrect bill of materials to be generated arises when one part represents an entire subassembly. In order to create a mirrored component of an entire subassembly, some commercially available products require a design engineer to create one part that consists of the entire subassembly, and therefore, an erroneous bill of materials may be generated that represents the mirrored subassembly as one part rather than numerous parts.
The current problems encountered when generating mirrored subassemblies, including retaining positional and hierarchical relationships, and generating a correct bill of materials, may be overcome by having a mechanism that automatically creates mirrored subassemblies with a minimum amount of interaction from the design engineer. Such an automated mechanism would save the design engineer a considerable amount of time and effort during the 3D modeling process. Furthermore, maximizing the intelligent re-use of existing components as replicated parts and minimizing the construction of additional unique components in the form of truly mirrored parts is desirable in order to reduce manufacturing costs, and to reduce the number of files a design engineer or Product Data Management (PDM) system needs to manage.